/**
 * 具体观察者A - 观察者模式中的具体观察者
 * 
 * 实现了Observer接口，当收到主题的通知时，执行特定的更新操作
 */
package com.mkx.behaviorals.observer;

public class ConcreteObserverA implements Observer {
    // 观察者的状态，与主题状态相关联
    private Object observerState;
    
    @Override
    public void update(Subject subject, Object data) {
        // 更新观察者的状态，使其与主题的状态保持一致
        this.observerState = data;
        System.out.println("观察者A收到通知，状态更新为: " + observerState);
        // 执行其他必要的操作
        doSomething();
    }
    
    /**
     * 观察者特有的操作
     */
    private void doSomething() {
        System.out.println("观察者A执行特定操作");
    }
    
    /**
     * 获取观察者状态
     * 
     * @return 观察者状态
     */
    public Object getObserverState() {
        return observerState;
    }
}